Refactoring the sourcing of .env.example as the driver for the generated .env

Ian Blenke 10 years ago
parent
commit
a1f7b2e6f0
2 changed files with 16 additions and 50 deletions
  1. 1 0
      docker/Dockerfile
  2. 15 50
      docker/scripts/init

+ 1 - 0
docker/Dockerfile

@@ -12,6 +12,7 @@ RUN apt-get update && \
12 12
       libmysqlclient-dev libpq-dev zlib1g-dev libyaml-dev libssl-dev \
13 13
       libgdbm-dev libreadline-dev libncurses5-dev libffi-dev \
14 14
       libxml2-dev libxslt-dev libcurl4-openssl-dev libicu-dev \
15
+      graphviz libgraphviz-dev \
15 16
       ruby2.1 ruby2.1-dev supervisor && \
16 17
     gem install --no-ri --no-rdoc bundler && \
17 18
     rm -rf /var/lib/apt/lists/*

+ 15 - 50
docker/scripts/init

@@ -10,62 +10,27 @@ source /app/.env.example
10 10
 # requires that the mysql or postgresql containers have exposed
11 11
 # port 3306 and 5432 respectively.
12 12
 if [ -n "${MYSQL_PORT_3306_TCP_ADDR}" ]; then
13
-  DATABASE_ADAPTER=${DATABASE_ADAPTER:-mysql2}
14
-  DATABASE_HOST=${DATABASE_HOST:-${MYSQL_PORT_3306_TCP_ADDR}}
15
-  DATABASE_PORT=${DATABASE_PORT:-${MYSQL_PORT_3306_TCP_PORT}}
13
+  HUGINN_DATABASE_ADAPTER=${HUGINN_DATABASE_ADAPTER:-mysql2}
14
+  HUGINN_DATABASE_HOST=${HUGINN_DATABASE_HOST:-${MYSQL_PORT_3306_TCP_ADDR}}
15
+  HUGINN_DATABASE_PORT=${HUGINN_DATABASE_PORT:-${MYSQL_PORT_3306_TCP_PORT}}
16 16
 elif [ -n "${POSTGRESQL_PORT_5432_TCP_ADDR}" ]; then
17
-  DATABASE_ADAPTER=${DATABASE_ADAPTER:-postgres}
18
-  DATABASE_HOST=${DATABASE_HOST:-${POSTGRESQL_PORT_5432_TCP_ADDR}}
19
-  DATABASE_PORT=${DATABASE_PORT:-${POSTGRESQL_PORT_5432_TCP_PORT}}
17
+  HUGINN_DATABASE_ADAPTER=${HUGINN_DATABASE_ADAPTER:-postgres}
18
+  HUGINN_DATABASE_HOST=${HUGINN_DATABASE_HOST:-${POSTGRESQL_PORT_5432_TCP_ADDR}}
19
+  HUGINN_DATABASE_PORT=${HUGINN_DATABASE_PORT:-${POSTGRESQL_PORT_5432_TCP_PORT}}
20 20
 fi
21 21
 
22
-cat <<EOF > /app/.env
23
-APP_SECRET_TOKEN=${HUGINN_APP_SECRET_TOKEN:-$APP_SECRET_TOKEN}
24
-DOMAIN=${HUGINN_DOMAIN:-$DOMAIN}
25
-${ASSET_HOST:+ASSET_HOST=${HUGINN_ASSET_HOST:-$ASSET_HOST}}
26
-DATABASE_ADAPTER=${HUGINN_DATABASE_ADAPTER:-$DATABASE_ADAPTER}
27
-DATABASE_ENCODING=${HUGINN_DATABASE_ENCODING:-$DATABASE_ENCODING}
28
-DATABASE_RECONNECT=${HUGINN_DATABASE_RECONNECT:-$DATABASE_RECONNECT}
29
-DATABASE_NAME=${HUGINN_DATABASE_NAME:-$DATABASE_NAME}
30
-DATABASE_POOL=${HUGINN_DATABASE_POOL:-$DATABASE_POOL}
31
-DATABASE_USERNAME=${HUGINN_DATABASE_USERNAME:-$DATABASE_USERNAME}
32
-DATABASE_PASSWORD="${HUGINN_DATABASE_PASSWORD:-$DATABASE_PASSWORD}"
33
-DATABASE_HOST=${HUGINN_DATABASE_HOST:-${DATABASE_HOST:-localhost}}
34
-DATABASE_PORT=${HUGINN_DATABASE_PORT:-${DATABASE_PORT:-3306}}
35
-${HUGINN_DATABASE_SOCKET:+DATABASE_SOCKET=${HUGINN_DATABASE_SOCKET}}
36
-${HUGINN_RAILS_ENV:+RAILS_ENV=${HUGINN_RAILS_ENV}}
37
-FORCE_SSL=${HUGINN_FORCE_SSL:-$FORCE_SSL}
38
-INVITATION_CODE=${HUGINN_INVITATION_CODE:-$INVITATION_CODE}
39
-SMTP_DOMAIN=${HUGINN_SMTP_DOMAIM:-$SMTP_DOMAIN}
40
-SMTP_USER_NAME=${HUGINN_SMTP_USER_NAME:-$SMTP_USER_NAME}
41
-SMTP_PASSWORD=${HUGINN_SMTP_PASSWORD:-$SMTP_PASSWORD}
42
-SMTP_SERVER=${HUGINN_SMTP_SERVER:-$SMTP_SERVER}
43
-SMTP_PORT=${HUGINN_SMTP_PORT:-$SMTP_PORT}
44
-SMTP_AUTHENTICATION=${HUGINN_SMTP_AUTHENTICATION:-$SMTP_AUTHENTICATION}
45
-SMTP_ENABLE_STARTTLS_AUTO=${HUGINN_SMTP_ENABLE_STARTTLS_AUTO:-$SMTP_ENABLE_STARTTLS_AUTO}
46
-EMAIL_FROM_ADDRESS=${HUGINN_EMAIL_FROM_ADDRESS:-$EMAIL_FROM_ADDRESS}
47
-AGENT_LOG_LENGTH=${HUGINN_AGENT_LOG_LENGTH:-$AGENT_LOG_LENGTH}
48
-TWITTER_OAUTH_KEY=${HUGINN_TWITTER_OAUTH_KEY:-$TWITTER_OAUTH_KEY}
49
-TWITTER_OAUTH_SECRET=${HUGINN_TWITTER_OAUTH_SECRET:-$TWITTER_OAUTH_SECRET}
50
-THIRTY_SEVEN_SIGNALS_OAUTH_KEY=${HUGINN_THIRTY_SEVEN_SIGNALS_OAUTH_KEY:-$THIRTY_SEVEN_SIGNALS_OAUTH_KEY}
51
-THIRTY_SEVEN_SIGNALS_OAUTH_SECRET=${HUGINN_THIRTY_SEVEN_SIGNALS_OAUTH_SECRET:-$THIRTY_SEVEN_SIGNALS_OAUTH_SECRET}
52
-GITHUB_OAUTH_KEY=${HUGINN_GITHUB_OAUTH_KEY:-$GITHUB_OAUTH_KEY}
53
-GITHUB_OAUTH_SECRET=${HUGINN_GITHUB_OAUTH_SECRET:-$GITHUB_OAUTH_SECRET}
54
-AWS_ACCESS_KEY_ID="${HUGINN_AWS_ACCESS_KEY_ID:-$AWS_ACCESS_KEY_ID}"
55
-AWS_ACCESS_KEY="${HUGINN_AWS_ACCESS_KEY:-$AWS_ACCESS_KEY}"
56
-AWS_SANDBOX=${HUGINN_AWS_SANDBOX:-$AWS_SANDBOX}
57
-FARADAY_HTTP_BACKEND=${HUGINN_FARADAY_HTTP_BACKEND:-$FARADAY_HTTP_BACKEND}
58
-DEFAULT_HTTP_USER_AGENT=${HUGINN_DEFAULT_HTTP_USER_AGENT:-$DEFAULT_HTTP_USER_AGENT}
59
-ALLOW_JSONPATH_EVAL=${HUGINN_ALLOW_JSONPATH_EVAL:-$ALLOW_JSONPATH_EVAL}
60
-ENABLE_INSECURE_AGENTS=${HUGINN_ENABLE_INSECURE_AGENTS:-$HUGINN_ENABLE_INSECURE_AGENTS}
61
-ENABLE_SECOND_PRECISION_SCHEDULE=${HUGGIN_ENABLE_SECOND_PRECISION_SCHEDULE:-$ENABLE_SECOND_PRECISION_SCHEDULE}
62
-${HUGINN_USE_GRAPHVIZ_DOT:+USE_GRAPHVIZ_DOT=${HUGINN_USE_GRAPHVIZ_DOT}}
63
-TIMEZONE="${HUGINN_TIMEZONE:-$TIMEZONE}"
64
-FAILED_JOBS_TO_KEEP=${HUGGIN_FAILED_JOBS_TO_KEEP:-$FAILED_JOBS_TO_KEEP}
65
-EOF
22
+grep = ../.env.example | sed -e 's/^#//' | grep -v -e '^#' | cut -d= -f1 | \
23
+  while read var ; do
24
+    echo "$var=\${HUGINN_$var:-\$$var}"
25
+  done > /app/.env
26
+
66 27
 chmod ugo+r /app/.env
67 28
 source /app/.env
68 29
 
30
+DATABASE_HOST=${HUGINN_DATABASE_HOST:-${DATABASE_HOST:-localhost}}
31
+DATABASE_ENCODING=${HUGINN_DATABASE_ENCODING:-${DATABASE_ENCODING}}
32
+USE_GRAPHVIZ_DOT=${HUGINN_USE_GRAPHVIZ_DOT:-${USE_GRAPHVIZ_DOT}}
33
+
69 34
 # use default port number if it is still not set
70 35
 case "${DATABASE_ADAPTER}" in
71 36
   mysql2) DATABASE_PORT=${DATABASE_PORT:-3306} ;;